#ifndef __SCENEROLEENTITY_H__
#define __SCENEROLEENTITY_H__
#pragma once

#include "WildConfig.h"
#define DEF_TERRAIN_HEIGHT 0.1f

//////////////////////////////////////////////////////////////////////////
//	Base
//////////////////////////////////////////////////////////////////////////

namespace wild
{

template < typename T >
class SceneNode
{
public:
	SceneNode()
	: m_pParent(0)
	, m_pChild(0)
	{

	}
	virtual ~SceneNode()
	{

	}
	DEC_INLINE(Parent, T, m_pParent);
	DEC_INLINE(Child, T, m_pChild);

protected:
	T* m_pParent;
	T* m_pChild;
};


class SceneRoleEntity : public SceneNode<SceneRoleEntity>
{
public:
	SceneRoleEntity();
	virtual ~SceneRoleEntity(){};
	virtual int ComponentProc(Uint uiMsg,int iParam1,char* pcParam2);

	virtual void OnUpdateFrame(double elapsedTime) = 0;
protected:

};



}

#endif	//	__SCENEROLEENTITY_H__
